home *** CD-ROM | disk | FTP | other *** search
/ Apple Developer Connection 1998 Fall: Game Toolkit / Disc.iso / SDKs / Third Party SDKs / ATI RAVE SDK / Samples / Strip Test / inc / ATIRave.h next >
Encoding:
C/C++ Source or Header  |  1998-06-23  |  5.7 KB  |  153 lines  |  [TEXT/CWIE]

  1. #ifndef ATI_RAVE_H
  2. #define ATI_RAVE_H
  3. /****************************************************************/
  4. /* headers                                                        */
  5. /****************************************************************/
  6. #include "RAVE.h"
  7. #include "gl.h"
  8.  
  9. /****************************************************************/
  10. /* defines                                                        */
  11. /****************************************************************/
  12. #define kQAGL_Nearest        0
  13. #define    kQAGL_Linear        1
  14.  
  15. #define QATIClearDrawBuffer(atiExtens,drawContext,rect) \
  16.         (*((atiExtens)->clearDrawBuffer))( drawContext, rect )
  17.  
  18. #define QATIClearZBuffer(atiExtens,drawContext,rect) \
  19.         (*((atiExtens)->clearZBuffer))( drawContext, rect )
  20.  
  21. #define QATITextureUpdate(atiExtens,flags,pixelType,images,texture) \
  22.         (*((atiExtens)->textureUpdate))( flags, pixelType, images, texture )
  23.         
  24. #define QATITextureBindCodeBook(atiExtens,texture,pCodebook) \
  25.         (*((atiExtens)->bindCodeBook))(texture, pCodebook)                
  26.             
  27. /****************************************************************/
  28. /* typedefs                                                        */
  29. /****************************************************************/
  30. typedef enum TQATIGestaltSelector
  31. {
  32.     kQATIGestalt_CurrentContext     = 1000,
  33.     kQATIGestalt_NumATISelectors    = 1
  34.     
  35. } TQATIGestaltSelector;
  36.  
  37. typedef enum TQATIImagePixelType {
  38.     kQATIPixel_RGB4444                = 1000,
  39.     kQATIPixel_ARGB4444                = 1001,
  40.     kQATIPixel_YUV422                = 1002,
  41.     kQATIPixel_ARGB8                = 1003,
  42.     kQATIPixel_NumPixelTypes        = 4
  43. } TQATIImagePixelType;
  44.  
  45. typedef enum {
  46.     kQATIFogDisable                    = 0,
  47.     kQATIFogExp                        = 1,
  48.     kQATIFogExp2                    = 2,
  49.     kQATIFogAlpha                    = 3,
  50.     kQATIFogLinear                    = 4
  51. } TQATIFogMode;
  52.  
  53. typedef enum {
  54.     kQATIComposeFunctionBlend        = 0,
  55.     kQATIComposeFunctionModulate    = 1,
  56.     kQATIComposeFunctionAddSpec        = 2
  57. } TQATIComposeFunction;
  58.  
  59. typedef enum {
  60.     kQATIDitherDisable                = 0,
  61.     kQATIDitherErrDiff                = 1,
  62.     kQATIDitherLUT                    = 2
  63. } TQATIDitherMode;
  64.  
  65. typedef struct {
  66.     unsigned long       flags;              /* Mask of kQATexture_xxx flags */
  67.     unsigned long        pixelType;          /* Depth, color space, etc. */
  68.     TQAImage              image;               /* Image(s) for texture */
  69. } TQATITexImage;
  70.  
  71. typedef enum
  72. {
  73.     kATITriCache        =    kQATag_EngineSpecific_Minimum,
  74.     kATIClearPreCallback=    kQATag_EngineSpecific_Minimum + 1,
  75.      kATIFogMode            =    kQATag_EngineSpecific_Minimum + 2,
  76.     kATIFogColor_r        =    kQATag_EngineSpecific_Minimum + 3,
  77.      kATIFogColor_g        =    kQATag_EngineSpecific_Minimum + 4,
  78.      kATIFogColor_b        =    kQATag_EngineSpecific_Minimum + 5,
  79.      kATIFogColor_a        =    kQATag_EngineSpecific_Minimum + 6,
  80.      kATIFogDensity      =   kQATag_EngineSpecific_Minimum + 7,
  81.      kATIFogStart        =   kQATag_EngineSpecific_Minimum + 8,
  82.      kATIFogEnd          =   kQATag_EngineSpecific_Minimum + 9,
  83.      kATILodBias            =    kQATag_EngineSpecific_Minimum + 10,
  84.      kATIChipID            =    kQATag_EngineSpecific_Minimum + 11,
  85.      kATICompositing     =   kQATag_EngineSpecific_Minimum + 12,
  86.     kATICompositingFunc =   kQATag_EngineSpecific_Minimum + 13,
  87.      kATICompositingFactor=  kQATag_EngineSpecific_Minimum + 14,
  88.      kATISecondTexMin    =   kQATag_EngineSpecific_Minimum + 15,
  89.      kATISecondTexMag    =   kQATag_EngineSpecific_Minimum + 16,
  90.     kATIVQTexCompresion =   kQATag_EngineSpecific_Minimum + 17,
  91.      kATISecond_Texture  =   kQATag_EngineSpecific_Minimum + 18,
  92.      kATICompositingAlpha=    kQATag_EngineSpecific_Minimum + 19,
  93.      kATINoDefaultClear  =    kQATag_EngineSpecific_Minimum + 20,
  94.     kATIRaveExtFuncs    =    kQATag_EngineSpecific_Minimum + 21,
  95.     kATIEnableZWrite    =    kQATag_EngineSpecific_Minimum + 22,
  96.     kATIRop2            =    kQATag_EngineSpecific_Minimum + 23,
  97.     kATIAlphaTestEnable =    kQATag_EngineSpecific_Minimum + 24,
  98.     kATIAlphaTestRef    =    kQATag_EngineSpecific_Minimum + 25,
  99.     kATIAlphaTestFunc    =    kQATag_EngineSpecific_Minimum + 26,
  100.     kATITexCompress        =    kQATag_EngineSpecific_Minimum + 27,
  101.     kATI_TextureContext =    kQATag_EngineSpecific_Minimum + 28,
  102.     kATISecond_TextureContext = kQATag_EngineSpecific_Minimum + 29,
  103.     kATISecondTextureWrapU       = kQATag_EngineSpecific_Minimum + 30,
  104.     kATISecondTextureWrapV       = kQATag_EngineSpecific_Minimum + 31,
  105.     kATISafeCallbacks    =     kQATag_EngineSpecific_Minimum + 32,
  106.     kATITextureAddr        =    kQATag_EngineSpecific_Minimum + 33,
  107.     kATIAlphaEnable        =    kQATag_EngineSpecific_Minimum + 34,
  108.     kATIRedEnable        =    kQATag_EngineSpecific_Minimum + 35,
  109.     kATIGreenEnable        =    kQATag_EngineSpecific_Minimum + 36,
  110.     kATIBlueEnable        =    kQATag_EngineSpecific_Minimum + 37,
  111.     kATINotifyZBuffer    =    kQATag_EngineSpecific_Minimum + 38,
  112.     kATIModulate2x        =   kQATag_EngineSpecific_Minimum + 39,
  113.     kATIDitherMode        =    kQATag_EngineSpecific_Minimum + 40,
  114.     kATIChipBusy        =    kQATag_EngineSpecific_Minimum + 41,
  115.     kATIMeshAsStrip        =    kQATag_EngineSpecific_Minimum + 42,
  116.     kATIScaleBlit        =    kQATag_EngineSpecific_Minimum + 43,
  117.     kATIScaleLeft        =    kQATag_EngineSpecific_Minimum + 44,
  118.     kATIScaleRight        =    kQATag_EngineSpecific_Minimum + 45,
  119.     kATIScaleTop        =    kQATag_EngineSpecific_Minimum + 46,
  120.     kATIScaleBottom        =    kQATag_EngineSpecific_Minimum + 47,
  121.     kATITags            =    48
  122. } E_ATIVAR;
  123.  
  124. /*
  125.  * ATI RAVE extension function pointers
  126.  */
  127. typedef TQAError (*TQATIClearDrawBuffer)( 
  128.     const TQADrawContext    *drawContext, 
  129.     const TQARect             *dirtyRect );
  130.     
  131. typedef TQAError (*TQATIClearZBuffer)(
  132.     const TQADrawContext    *drawContext,
  133.     const TQARect             *dirtyRect );
  134.  
  135. typedef TQAError (*TQATITextureUpdate)(
  136.     unsigned long           flags,                 /* Mask of kQATexture_xxx flags */  
  137.     TQAImagePixelType        pixelType,          /* Depth, color space, etc. */
  138.     const TQAImage             *images,
  139.     TQATexture                 *texture );          /* Previously allocated by QATextureNew() */            /* new Image(s) for texture contents */
  140.  
  141. typedef TQAError (*TQATITextureBindCodeBook)(
  142.     TQATexture                 *texture,
  143.     void                    *pCodebook );
  144.  
  145. typedef struct RaveExtFuncs{
  146.     TQATIClearDrawBuffer        clearDrawBuffer;
  147.     TQATIClearZBuffer            clearZBuffer;
  148.     TQATITextureUpdate            textureUpdate;
  149.     TQATITextureBindCodeBook    bindCodeBook; 
  150. }RaveExtFuncs;
  151.  
  152. #endif
  153.